#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int N, R, Q;
int i, j;
struct people
{
	int id;
	int score;
	int pow;
}stc[500005],stcc[500005];
void gb_sort(int l, int r)
{
	if (l >= r)return;
	int mid = (l + r) / 2; int i = l, j = mid + 1, k = l;
	gb_sort(l, mid);
	gb_sort(mid + 1, r);
	while (i <= mid && j <= r) {
		if (stc[i].score > stc[j].score) {
			stcc[k].id = stc[i].id;
			stcc[k].score = stc[i].score;
			stcc[k].pow = stc[i].pow;
			k++, i++;
		}
		else if(stc[i].score < stc[j].score){
			stcc[k].id = stc[j].id;
			stcc[k].score = stc[j].score;
			stcc[k].pow = stc[j].pow;
			k++, j++;
		}
		else {
			if (stc[i].id < stc[j].id) {
				stcc[k].id = stc[i].id;
				stcc[k].score = stc[i].score;
				stcc[k].pow = stc[i].pow;
				k++, i++;
			}
			else {
				stcc[k].id = stc[j].id;
				stcc[k].score = stc[j].score;
				stcc[k].pow = stc[j].pow;
				k++, j++;
			}
		}
	}
	for (; i <= mid; i++) {
		stcc[k].id = stc[i].id;
		stcc[k].score = stc[i].score;
		stcc[k].pow = stc[i].pow;
		k++;
	}
	for (; j <= r; j++) {
		stcc[k].id = stc[j].id;
		stcc[k].score = stc[j].score;
		stcc[k].pow = stc[j].pow;
		k++;
	}
	for (k = l; k <= r; k++) {
		stc[k].id = stcc[k].id;
		stc[k].score = stcc[k].score;
		stc[k].pow = stcc[k].pow;
	}
}
int compare(const void* p1, const void* p2)
{
	if (((struct people*)p1)->score > ((struct people*)p2)->score)
		return -1;
	else if (((struct people*)p1)->score < ((struct people*)p2)->score)
		return 1;
	else {
		if (((struct people*)p1)->id > ((struct people*)p2)->id)
			return 1;
		else
			return -1;
	}
}
int main()
{
	scanf("%d%d%d", &N, &R, &Q);
	for (i = 0; i < 2 * N; i++) {
		stc[i].id = i + 1;
		scanf("%d", &stc[i].score);
	}
	for (i = 0; i < 2 * N; i++)
		scanf("%d", &stc[i].pow);
	qsort(stc, 2 * N, sizeof(struct people), compare);
	while (R--) {
		for (i = 0; i < 2 * N; i += 2) {
			if (stc[i].pow > stc[i + 1].pow)stc[i].score++;
			else stc[i + 1].score++;
		}
		gb_sort(0, 2 * N - 1);
	}
	/*for (int i = 0; i < 2 * N; i++) {
		cout << stc[i].id << " " << stc[i].score << " " << stc[i].pow << endl;
	}*/
	printf("%d", stc[Q - 1].id);
	return 0;
}


//struct people
//{
//	int id;
//	int score;
//	int pow;
//}stc[500005],stcc[500005];
//void gb_sort(int l, int r)
//{
//	if (l >= r)return;
//	if (l + 1 == r) {
//		if (stc[l].pow > stc[r].pow)stc[l].score++;
//		else stc[r].score++;
//	}
//	int mid = (l + r) / 2; int i = l, j = mid + 1, k = l;
//	gb_sort(l, mid);
//	gb_sort(mid + 1, r);
//	while (i <= mid && j <= r) {
//		if (stc[i].score > stc[j].score) {
//			stcc[k].id = stc[i].id;
//			stcc[k].score = stc[i].score;
//			stcc[k].pow = stc[i].pow;
//			k++, i++;
//		}
//		else if(stc[i].score < stc[j].score){
//			stcc[k].id = stc[j].id;
//			stcc[k].score = stc[j].score;
//			stcc[k].pow = stc[j].pow;
//			k++, j++;
//		}
//		else {
//			if (stc[i].id < stc[j].id) {
//				stcc[k].id = stc[i].id;
//				stcc[k].score = stc[i].score;
//				stcc[k].pow = stc[i].pow;
//				k++, i++;
//			}
//			else {
//				stcc[k].id = stc[j].id;
//				stcc[k].score = stc[j].score;
//				stcc[k].pow = stc[j].pow;
//				k++, j++;
//			}
//		}
//	}
//	for (; i <= mid; i++) {
//		stcc[k].id = stc[i].id;
//		stcc[k].score = stc[i].score;
//		stcc[k].pow = stc[i].pow;
//		k++;
//	}
//	for (; j <= r; j++) {
//		stcc[k].id = stc[j].id;
//		stcc[k].score = stc[j].score;
//		stcc[k].pow = stc[j].pow;
//		k++;
//	}
//	for (k = l; k <= r; k++) {
//		stc[k].id = stcc[k].id;
//		stc[k].score = stcc[k].score;
//		stc[k].pow = stcc[k].pow;
//	}
//}
//int compare(const void* p1,const void* p2)
//{
//	if (((struct people*)p1)->score > ((struct people*)p2)->score)
//		return -1;
//	else if (((struct people*)p1)->score < ((struct people*)p2)->score)
//		return 1;
//	else {
//		if (((struct people*)p1)->id > ((struct people*)p2)->id)
//			return 1;
//		else
//			return -1;
//	}
//}
//int main()
//{
//	cin >> N >> R >> Q;
//	for (i = 0; i < 2 * N; i++) {
//		stc[i].id = i + 1;
//		scanf("%d", &stc[i].score);
//	}
//	for (i = 0; i < 2 * N; i++)
//		scanf("%d", &stc[i].pow);
//	qsort(stc, 2 * N, sizeof(struct people), compare);
//	while (R--) {
//		gb_sort(0, 2 * N - 1);
//	}
//	/*for (int i = 0; i < 2 * N; i++) {
//		cout << stc[i].id << " " << stc[i].score << " " << stc[i].pow << endl;
//	}*/
//	cout << stc[Q - 1].id;
//	return 0;
//}